Confidential data files are often stored in floppy disks or are delivered via networks that require passwords or that use encryption coding for security. Confidential documents are sent by adding safety seals and impressions during delivery. However, confidential data files and documents are exposed to the danger that the passwords, encryption codes, safety seals and impressions may be broken (deciphered), thereby resulting in unauthorized access to the confidential information.
Multi-Media cards (MMC) that use flash memory are popular for storing data. Flash memory-based MMCs (or “flash cards”) are well known and are used in products such as digital cameras. Benefits of flash cards include low-power dissipation and high resistance to vibration.
FIG. 21 is a block diagram of a conventional flash card 50 coupled with a user host 52. The flash card 50 includes a flash memory controller 60 and a flash memory device 62. The user host 52 can be a camera or a PC, for example. Data is transferred between the user host 52 and the flash memory device 62 via the flash memory controller 60. Information required for accessing the flash memory device 62 is stored in a ROM (not only normal read-only memory ROM block, but also state-machine or logic array which can acts as ROM function) 64 in the flash memory controller 60. Such information includes boot code 66 and control code 68. The boot code 66 is software that initializes the flash card 50 during the early phase of the booting sequence. The control code 68 contains both necessary information to exercise the initial booting sequence, and information that enables the flash memory controller 60 to access the flash memory device 62.
A problem with conventional flash memory systems is that the boot code 66 and/or the control code 68 can have bugs, which may not be discovered until the flash memory system is already in the field. Also, the boot code 66 and/or the control code 68 may have to be updated due to bugs or due to improvements to the codes.
The conventional solution is to replace the flash memory controller 60 as it contains the ROM 64, in which the boot code 66 and the control code 68 are stored. A problem with this solution is that it can cause significant inventory issues for a flash card manufacturer. For instance, an entire stock of flash memory controllers may have to be thrown out for one fix or for an update to the boot code or to the control code. Hence, a new stock of flash memory controllers would have to be ordered. This can be an on-going problem if subsequent updates are required.
Accordingly, what is needed is an improved flash memory system that is be adaptable, simple, cost effective, and capable of being easily adapted to existing technology.